package edu.nf.identification.service;

import edu.nf.identification.pojo.IDCard;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.stereotype.Service;
import org.springframework.util.MimeTypeUtils;

import java.util.List;

@Service
@RequiredArgsConstructor
@Slf4j
public class AiModelService {

    private final ChatClient chatClient;

    public IDCard defaultIDCard(List<byte[]> imagesData,List<String> contentTypes) {
        return chatClient.prompt()
                .system(systemMessage -> systemMessage
                        .text("你是一个提取身份证信息的助手，帮助用户提取身份证图片中的文本信息")
                        .text("只专注与身份证信息的提取，如果发现不是身份证证件就不提取信息，直接返回null对象")
                )
                .user(userMessage -> {
                    // 用户默认提示词
                    userMessage.text("提取图片中的文本信息");
                    // 传入多个图片
                    for (int i = 0; i < imagesData.size(); i++) {
                        userMessage.media(
                                MimeTypeUtils.parseMimeType(contentTypes.get(i)),
                                new ByteArrayResource(imagesData.get(i))
                        );
                    }
                })
                .call()
                .entity(IDCard.class);
    }
}
